// components/lateralSpreads/lateralSpreads.js
const app = getApp();
let Api = require('../../api/api.js');
Component({
    /**
     * 组件的属性列表
     */
    properties: {
        "collectionData":{
            type : Array ,
            observer: function () {
                let self = this;
                let listData = [];
                self.data.collectionData.forEach(ele => {
                    listData.push({
                        wpCover: ele.wpCover,
                        wpName: unescape(ele.wpName),
                        wpStatus: ele.wpStatus,
                        wpViceName: ele.wpViceName,
                        wsPrice: ele.wsPrice,
                        isTouchMove: false, //默认隐藏删除
                        wpid: ele.wpId,
                    })
                })
                self.setData({
                    items: listData
                })

            }
        }
    },
    /**
     * 组件的初始数据
     */
    data: {
        items: [],
        startX: 0, //开始坐标
        startY: 0,
    },
    /**
     * 组件的方法列表
     */
    methods: {
        //点击收藏列表
        clickCollectionList(e){
            let self = this;
            wx.navigateTo({
                url: '../commodityDetails/commodityDetails?wpID=' + e.currentTarget.dataset.wpid
            })
        },
        touchstart: function (e) {
            //开始触摸时 重置所有删除
            this.data.items.forEach(function (v, i) {
                if (v.isTouchMove)//只操作为true的
                    v.isTouchMove = false;
            })
            this.setData({
                startX: e.changedTouches[0].clientX,
                startY: e.changedTouches[0].clientY,
                items: this.data.items
            })
        },
        touchmove: function (e) {
            var that = this,
                index = e.currentTarget.dataset.index,//当前索引
                startX = that.data.startX,//开始X坐标
                startY = that.data.startY,//开始Y坐标
                touchMoveX = e.changedTouches[0].clientX,//滑动变化坐标
                touchMoveY = e.changedTouches[0].clientY,//滑动变化坐标
                //获取滑动角度
                angle = that.angle({ X: startX, Y: startY }, { X: touchMoveX, Y: touchMoveY });
                that.data.items.forEach(function (v, i) {
                    v.isTouchMove = false
                    //滑动超过30度角 return
                    if (Math.abs(angle) > 30) return;
                    if (i == index) {
                        if (touchMoveX > startX) //右滑
                            v.isTouchMove = false
                        else //左滑
                            v.isTouchMove = true

                    }
                })
                //更新数据
                that.setData({
                    items: that.data.items

                })
        },
        /**

        * 计算滑动角度

        * @param {Object} start 起点坐标

        * @param {Object} end 终点坐标

        */
        angle: function (start, end) {
            var _X = end.X - start.X,
                _Y = end.Y - start.Y
            //返回角度 /Math.atan()返回数字的反正切值
            return 360 * Math.atan(_Y / _X) / (2 * Math.PI);
        },

        //删除事件
        del: function (e) {
            console.log(e)
            let self = this;
            self.data.items.splice(e.currentTarget.dataset.index, 1)
            self.setData({
                items: self.data.items
            })
            Api.get(app.globalData.mallDomain, {
                doAddOrDelCollection: 1,
                token: app.globalData.token,
                wpid: e.currentTarget.dataset.wpid,
            }).then(res => {
                self.triggerEvent('myevent', res.data.ret);
            })

        }
    }
})
